/**
 * 给一个图，两方轮流删边，但仍然要保持连通。不能操作者失败。
 * 问胜方。
 * 注意不是轮流走，而是给了一个`12`的串，第i步由Si这一方走
 * 其实只要看比生成树多几条边就行。因为也无法删别的边。
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using vi = vector<int>;

int K, N, M;
string S;
vector<vi> G;

int proc(){
    int t = M + 1 - N;
    t %= K;
    return S[t] - '0' ^ 3;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofkase = 1;
    cin >> nofkase;
    while(nofkase--){
        cin >> K >> S >> N >> M;
        G.assign(N + 1, {});
        for(int a,b,i=0;i<M;++i){
            cin >> a >> b;
            G[a].push_back(b);
            G[b].push_back(a);
        }
        cout << proc() << endl;
    }
    return 0;
}